/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import dao.AtividadeDAO;
import dao.ProjetoDAO;
import dao.StatusAtividadeDAO;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import model.Atividade;
import model.Projeto;
import model.StatusAtividade;

/**
 *
 * @author Cilli
 */
@ManagedBean
@SessionScoped
public class BeanCadastroAtividadeProjeto {
    
    private Atividade atividade = new Atividade();
    private DataModel listaProjeto;
    private DataModel listaStatusAtividade;
    private DataModel listaAtividade;
    private Projeto projetoSelecionado;
    private model.StatusAtividade atividadeSelecionada;
    private Long id = null;
    private boolean readonly;

    public BeanCadastroAtividadeProjeto() {
        readonly = false;
    }
    
    public void cadastrarAtividade(){
        AtividadeDAO atividadeDAO = new AtividadeDAO();
        atividade.setStatus(atividadeSelecionada);
        atividade.setProjeto(projetoSelecionado);
        try {
          atividadeDAO.save(atividade);
        } catch (Exception ex) {
            Logger.getLogger(BeanCadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
       }
        novaAtividade();
    }
    
     public void alterarAtividade(){
        AtividadeDAO atividadeDAO = new AtividadeDAO();
        
        atividade.setProjeto(projetoSelecionado);
        
        try {
            atividadeDAO.save(atividade);
        } catch (Exception ex) {
            Logger.getLogger(BeanCadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        id = null;
        novaAtividade();
    }
    
     
      public void novaAtividade(){
        atividade = null;
        atividade = new Atividade();
        id = null;
    }
     
    public void preparaAlteracao(){
        atividade = (Atividade)(listaAtividade.getRowData());
        id = atividade.getId();
        projetoSelecionado = atividade.getProjeto();
        atividadeSelecionada = atividade.getStatus();
    }
    
    public void excluirAtividade(){
        AtividadeDAO atividadeDAO = new AtividadeDAO();
        try {
            atividadeDAO.deletarAtividade((Atividade)(listaAtividade.getRowData()));
        } catch (Exception e) {
            System.out.println("Erro: "+e);
        }
        preparaAlteracao();
    }
    
    public Atividade getAtividade() {
        return atividade;
    }

    public void setAtividade(Atividade atividade) {
        this.atividade = atividade;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public DataModel getListaAtividade() {
        AtividadeDAO atividadeDAO = new AtividadeDAO();
        try {
            listaAtividade = new ListDataModel(atividadeDAO.getList());
        } catch (Exception e) {
            System.out.println(e);
        }
        return listaAtividade;
    }

    public void setListaAtividade(DataModel listaAtividade) {
        this.listaAtividade = listaAtividade;
    }

    public DataModel getListaProjeto() {
        ProjetoDAO projetoDAO = new ProjetoDAO();
		try {
			listaProjeto = new ListDataModel(projetoDAO.getList());
		} catch (Exception e) {
			System.out.println(e);
		}
		return listaProjeto;
    }

 

    public DataModel getListaStatusAtividade() {
         StatusAtividadeDAO statusAtividadeDAO = new StatusAtividadeDAO();
		try {
			listaStatusAtividade = new ListDataModel(statusAtividadeDAO.getList());
		} catch (Exception e) {
			System.out.println(e);
		}
		return listaStatusAtividade;
    }

    public void setListaStatusAtividade(DataModel listaStatusAtividade) {
        this.listaStatusAtividade = listaStatusAtividade;
    }
    
    public void setListaProjeto(DataModel listaProjeto) {
        this.listaProjeto = listaProjeto;
    }

    public Projeto getProjetoSelecionado() {
        return projetoSelecionado;
    }

    public void setProjetoSelecionado(Projeto projetoSelecionado) {
        this.projetoSelecionado = projetoSelecionado;
    }

    public StatusAtividade getAtividadeSelecionada() {
        return atividadeSelecionada;
    }

    public void setAtividadeSelecionada(StatusAtividade atividadeSelecionada) {
        this.atividadeSelecionada = atividadeSelecionada;
    }

    public boolean isReadonly() {
        return readonly;
    }

    public void setReadonly(boolean readonly) {
        this.readonly = readonly;
    }
    
    
}
